Skip to content

Add AI assistant guide, API field notes, and llms.txt - #32

Merged
ddemlow merged 2 commits into
masterfrom
ai-assistant-docs
Sep 10, 2026
Merged

Add AI assistant guide, API field notes, and llms.txt#32
ddemlow merged 2 commits into
masterfrom
ai-assistant-docs

Conversation

@ddemlow

@ddemlow ddemlow commented Jul 30, 2026

Copy link
Copy Markdown
Member

What this adds

Documentation for both humans and AI coding assistants writing code against the SC//HyperCore™ REST API:

  • CLAUDE.md — read automatically by Claude Code and other AI coding tools; distills the six rules that prevent most HyperCore API bugs (task-tag waits, single-element array responses, fetch-then-filter, self-signed TLS, update-in-progress checks, no cluster VIP) plus a naming-trap table.
  • AGENTS.md — pointer file so non-Claude agents pick up the same guidance.
  • docs/hypercore-api-field-notes.md — empirically verified per-endpoint field notes collected from real integration work against HyperCore 9.6.x/9.7.x clusters: request/response shape corrections, version-gated features, labels schema, snapshot/clone gotchas, ISO and virtual-disk upload flows, CBT/snapDiff.
  • docs/hypercore-api-reference.html — self-contained rendered reference page (searchable, light/dark theme) of the same material.
  • llms.txt — machine-readable summary for LLM crawlers.

Review done

  • Technical content cross-checked for internal consistency; references (vm_lifecycle.py, Fleet Manager/) verified against this repo.
  • Trademark/branding audited (SC//HyperCore™, SC//Fleet Manager™, third-party ® marks, attribution footers).
  • No credentials, internal hostnames, or private IPs.

🤖 Generated with Claude Code

New documentation for humans and AI coding assistants working against the
SC//HyperCore(TM) REST API:

- CLAUDE.md / AGENTS.md: rules and naming traps that prevent the most
  common HyperCore API bugs, read automatically by AI coding tools
- docs/hypercore-api-field-notes.md: empirically verified per-endpoint
  behavior notes (task-tag waits, response shapes, version gates)
- docs/hypercore-api-reference.html: rendered, searchable reference page
- llms.txt: machine-readable repo summary

Content reviewed for accuracy against HyperCore 9.6.x/9.7.x clusters and
audited for trademark compliance.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. The update-status check may be wrong, and it would fail open. Rule 5 says the cluster is idle when a top-level updateStage is "COMPLETE" or empty. Your own HyperCoreDynamicBalancer in this repo checks two different fields instead: prepareStatus.state and updateStatus.masterState. If updateStage doesn't exist at the top level, .get("updateStage") returns None, which reads as "empty." The check would then report idle during a real update. This needs verifying on a live cluster during an update. The doc should also say to treat "unreachable" as "busy," since nodes reboot mid-update.

@wvancollenburg wvancollenburg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Flagged update status might need some additional wording to it, but otherwise no issues.

Review feedback on #32: the documented check read a top-level updateStage
field and treated an empty/absent value as idle, so it would report a
cluster idle during a real update.

Verified against three live clusters (9.8.3 and 9.8.4): update_status.json
has no top-level updateStage. The real fields are prepareStatus.state and
updateStatus.masterState — the same two this repo's
HyperCoreDynamicBalancer reads, and the same masterState the HyperCore
Ansible collection reads in hypercore_version.py.

Docs now say idle requires both states to be COMPLETE, and spell out the
fail-closed cases: a missing field, an unparseable body, no
update_status.json at all on a never-updated cluster, or an unreachable
node (nodes reboot mid-update, so a connection failure is a likely symptom
of one). Adds the observed response shape and points at the balancer as
the working implementation.

Not yet observed: a mid-update payload, so no in-progress state names are
documented.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants